<?php
if (! function_exists('objectToArray')) {
    /**
     * @desc 将对象转为数组
     * @param unknown $object
     * @return mixed
     */
    function objectToArray($object)
    {
        return json_decode(json_encode($object), true);
    }
}

if (! function_exists('getRandomStr')) {
    /**
    * 获得随机字符串
    * @param $len       需要的长度
    * @param $special   是否需要特殊符号
    * @return string    返回随机字符串
    */
    function getRandomStr($len, $special=true){
        $chars = array(
            "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
            "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
            "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",
            "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
            "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2",
            "3", "4", "5", "6", "7", "8", "9"
        );

        if($special){
            $chars = array_merge($chars, array(
                "!", "@", "#", "$", "?", "|", "{", "/", ":", ";",
                "%", "^", "&", "*", "(", ")", "-", "_", "[", "]",
                "}", "<", ">", "~", "+", "=", ",", "."
            ));
        }
        $charsLen = count($chars) - 1;
        shuffle($chars);                            //打乱数组顺序
        $str = '';
        for($i = 0; $i < $len; $i++){
            $str .= $chars[mt_rand(0, $charsLen)];    //随机取出一位
        }
        return $str;
    }
}


if(! function_exists('addActionLog')){
    /**
     * @author fld
     * @desc 保存后台操作日志
     * @param $data
     */
    function addActionLog($data){
        $adminActionlog = app()->make(\App\Service\Admin\AdminActionlogService::class);
        $adminActionlog->addAdminActionLog($data);
    }
}

if(! function_exists('encryptHashPassword')){
    /**
     * @author fld 2021-07-21
     * @desc 散列算法加密
     * @param $data
     */
    function encryptHashPassword($password){
        $salt = env('PASSWD_SALT');
        $hash_pwd = hash("sha256", md5($password . $salt));
        return $hash_pwd;
    }
}

if(! function_exists('verifyHashPassword')){
    /**
     * @author fld 2021-07-21
     * @desc 验证密码是否正确
     * @param $data
     */
    function verifyHashPassword($password, $hashPassword){
        $salt = env('PASSWD_SALT');
        $hash_pwd = hash("sha256", md5($password . $salt));
        if ($hash_pwd == $hashPassword){
            return true;
        } else {
            return false;
        }
    }
}
